package com.ship.contract.bean;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ship.common.core.base.BaseBean;
import com.ship.common.core.base.Joinable;
import com.ship.common.core.mapping.Label;
import com.ship.common.core.mapping.SearchItem;
import com.ship.common.core.mapping.TableColumn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 船舶船员信息主表
 * @TableName sm_ship_crew
 */
@TableName(value ="sm_ship_crew")
@Data
public class SmShipCrew extends BaseBean implements Joinable {

    /**
     * 船舶名称
     */
    @Label(value = "船舶名称")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "船舶名称")
    private String shipName;

    /**
     * IMO
     */
    @Label(value = "IMO")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "IMO")
    private String imo;

    /**
     * 呼号
     */
    @Label(value = "呼号")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "呼号")
    private String callSign;

    /**
     * 船旗国
     */
    @Label(value = "船旗国")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "船旗国")
    private String flagState;

    /**
     * 船长
     */
    @Label(value = "船长")
    @TableColumn
    @ApiModelProperty(value = "船长")
    private String masterName;

    /**
     * 船员数量·在船
     */
    @Label(value = "船员数量·在船")
    @TableColumn
    @ApiModelProperty(value = "船员数量·在船")
    private Integer crewNum;

    /**
     * 高级船员数量
     */
    @Label(value = "高级船员数量")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "高级船员数量")
    private Integer highCrewNum;

    /**
     * 更新时间
     */
    @Label(value = "更新时间")
    @TableColumn
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
    private Date updatedTime;

    /**
     * 操作者
     */
    @Label(value = "操作者")
    @TableColumn
    @ApiModelProperty(value = "操作者")
    private String updatedBy;

    @Override
    public String getLabel() {
        return null;
    }

    @Override
    public String getValue() {
        return null;
    }
}